package graphesTOTEST;

import static org.junit.Assert.assertTrue;
import org.junit.Test;

/**
 * 
 * @author simon duval
 * @author youssef lahrizi
 *
 * Controle de la couverture de graphe : GFC
 */

public class IsomorphismeCouvertureTest {

	/**
	 * test de la couverture des noeuds de la methode buildIsomorphisme()
	 */
	@Test
	public void isoCouvertureNoeudTest(){
		IsomorphismeCouvertureTest i = new IsomorphismeCouvertureTest();
		i.isoCouvertureNoeudChemin1Test();
		i.isoCouvertureNoeudChemin3Test();
		i.isoCouvertureNoeudChemin4Test();
	}
	
	/**
	 * test de la couverture des transitions de la methode buildIsomorphisme()
	 */
	@Test
	public void isoCouvertureTransitionTest(){
		IsomorphismeCouvertureTest i = new IsomorphismeCouvertureTest();
		i.isoCouvertureNoeudChemin1Test();
		i.isoCouvertureNoeudChemin2Test();
		i.isoCouvertureNoeudChemin3Test();
		i.isoCouvertureNoeudChemin4Test();
	}
	
	/**
	 * couverture du chemin A,B,K,L du GFC (voir rapport)
	 */
	public void isoCouvertureNoeudChemin1Test(){
		Graphe g1 = new Graphe(0);
		Graphe g2 = new Graphe(0);
		Isomorphisme i = new Isomorphisme(g1,g2);
		assertTrue(i.buidIsomorphisme());	
	}
	
	/**
	 * couverture du chemin A,B,C,D,E,F,D,L du GFC (voir rapport)
	 */
	public void isoCouvertureNoeudChemin2Test(){
		Graphe g1 = new Graphe(1);
		Graphe g2 = new Graphe(1); 
		g1.ajoutSommet(0);
		g1.ajoutArc(0, 0, 100);
		g2.ajoutSommet(0);
		Isomorphisme i = new Isomorphisme(g1,g2);
		assertTrue(!i.buidIsomorphisme());
	}
	
	/**
	 * couverture du cheminA,B,C,D,E,F,G,H,I,D,L du GFC (voir rapport)
	 */
	public void isoCouvertureNoeudChemin3Test(){
		Graphe g1 = new Graphe(2);
		g1.ajoutSommet(0);
		g1.ajoutSommet(1);
		g1.ajoutArc(1, 1, 10);
		Graphe g2 = new Graphe(1);
		g2.ajoutSommet(0);
		Isomorphisme i = new Isomorphisme(g1,g2);
		i.buidIsomorphisme();
	}

	/**
	 * couverture du chemin A,B,C,D,L,E,F,G,H,J,D,L du GFC (voir rapport)
	 */
	public void isoCouvertureNoeudChemin4Test(){
		Graphe g1 = new Graphe(1);
		Graphe g2 = new Graphe(1); 
		g1.ajoutSommet(0);
		g2.ajoutSommet(0);
		Isomorphisme i = new Isomorphisme(g1,g2);
		assertTrue(i.buidIsomorphisme());
	}

}
